/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controle.gui.frames.internos;

import controle.gui.utils.TamanhoJTextField;
import gui.frames.internos.IFPreferencias;
import javax.swing.JOptionPane;
import modelo.Configuracao;
import persistencia.dao.AbstractDAO;
import persistencia.dao.TransacaoDAO;

/**
 *
 * @author Administrador
 */
public class ControlePreferencias {

    ControleArquivoPreferencias arquivo = new ControleArquivoPreferencias();
    IFPreferencias frame;

    public ControlePreferencias(IFPreferencias frame) {
        this.frame = frame;
    }

    public void inicializa() {

        //Limita o tamanho do JTextField
        TamanhoJTextField.limitaTamanho(new int[]{100}, frame.getTextChefeDaTurma());

        preencheGui();

    }

    public void preencheGui() {

        Configuracao conf = (Configuracao) AbstractDAO.consultar("Configuracao", "id=1").get(0);
        frame.getTextPorta().setText(conf.getPorta().toString());

        String strTemp = conf.getDiasValidadeLog().toString();
        
        if (strTemp.equals("0")) {
            strTemp = "Nunca";

        } else {
            strTemp += " dias";
        }
        
        frame.getComboDuracao().setSelectedItem(strTemp);
        
        if(conf.getChefeDaTurma() != null){
            frame.getTextChefeDaTurma().setText(conf.getChefeDaTurma());
        }
        
    }

    /**
     * Salva no bd as configurações da aplicação
     *
     * @return
     */
    public boolean salvarPreferencias() {

        //Verifica se os campos estão preenchidos corretamente
        if (verificaCampos()) {

            String strTemp = frame.getComboDuracao().getSelectedItem().toString();
            if (strTemp.equals("Nunca")) {
                strTemp = "0";

            } else {
                strTemp = strTemp.replace(" dias", "");
            }

            Configuracao conf = new Configuracao(1, Integer.parseInt(frame.getTextPorta().getText()), Integer.parseInt(strTemp), frame.getTextChefeDaTurma().getText());
            if(AbstractDAO.alterar(conf)){
                JOptionPane.showMessageDialog(frame, "Preferências salvas com sucesso!", "Configurações", JOptionPane.INFORMATION_MESSAGE);
                
                TransacaoDAO.cadastrar("Alterou as preferências do sistema.");
                
                return true;
                
            } else {
                JOptionPane.showMessageDialog(frame, "Erro ao alterar as preferências do sistema.", "Atenção!", JOptionPane.ERROR_MESSAGE);
                return false;
                
            }

        }
        
        return false;

    }

    /**
     * Verifica se todos os campos da Gui estão preenchidos corretamente
     *
     * @return
     */
    public boolean verificaCampos() {

        if (frame.getTextPorta().getText().isEmpty()) {
            JOptionPane.showMessageDialog(frame, "O campo porta deve ser preenchido", "Atenção!", JOptionPane.WARNING_MESSAGE);
            return false;
        }

        return true;
    }
}
